package cn.lingyangwl.agile.model.module.config.param;

import cn.lingyangwl.agile.model.enums.ConfigKeyEnum;
import cn.lingyangwl.framework.tool.core.StringUtils;
import com.alibaba.fastjson2.JSON;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * @author shenguangyang
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class UserRegisterParam extends BaseConfigParam<UserRegisterParam> {
    /**
     * 是否使能管理端用户注册
     */
    private boolean enableMgt;

    // 微信小程序授权登录
    /**
     * 开启后在微信小程序端一键获取用户授权并登录和注册
     */
    private boolean wxMaAuthLoginOrRegister;

    /**
     * 开启后在微信小程序端一键授权注册时强制绑定手机号，仅首次注册时弹出
     */
    private boolean bindPhone;

    // 微信公众号授权登录
    /**
     * 开启后在微信公众号端一键获取用户授权并登录和注册
     * 关闭后微信公众号端将无法获取用户的openid，同时无法使用微信支付
     */
    private boolean wxMpAuthLoginOrRegister;

    @Override
    protected UserRegisterParam jsonToObject(String json) {
        if (StringUtils.isEmpty(json)) {
            return new UserRegisterParam();
        }
        return JSON.parseObject(json, UserRegisterParam.class);
    }

    @Override
    public ConfigKeyEnum configKey() {
        return ConfigKeyEnum.USER_REGISTER;
    }
}
